#include "widget.h" // 创建生成时的文件
#include "ui_widget.h"
#include <QLabel>  // 包含标签的头文件
#include "mylabel.h"
#include <QDebug>

//Widget::Widget(QWidget *parent)
//    : QWidget(parent)
//    , ui(new Ui::Widget)
//{
//    ui->setupUi(this); // 将form file生成的界面和我们当前的widget进行关联起来
//     // 创建对象的两种方法
//     QLabel lab(this); // 在栈上创建
//     lab.setText("Hello world");

//    QLabel* label = new QLabel(this); // 在堆上创建，推荐这种方法，还要传递 一个 this，给当前这个 lable 对象指定 父对象

//    // 1. 设置标签内容
//    label->setText((QString)("显式 Hello world"));
//    label->setText("隐式 Hello World"); // QString 也提供了 C 风格字符串作为参数的构造函数来不显示构造 QString
//    // 注意：由于QString 对应的头文件,已经被很多 Qt 内置的其他类给间接包含了.因此一般不需要显式包含 QString 头文件
//    // 这里虽然有两次 setText，但是下面内容会覆盖上面内容

//    // 2. 设置窗口大小
//    setFixedSize(500, 400);

//    // 3. 设置字体大小
//    QFont font("楷体", 16);
//    label->setFont(font);

//    // 4. 设置标签内容显式位置
//    label->move(200, 150);

//    // 5. 设计标签字体颜色
//    label->setStyleSheet("color:blue");
// }



Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this); // 将form file生成的界面和我们当前的widget进行关联起来
    // 使用自己定义的 MyLabel 代替原来的 QLabel，所谓的 “继承” 本质上是扩展，保持原有功能不变的基础上
    // 给对象扩展出一个析构函数，通过这个析构函数，打印一个自定义日志，方便观察程序运行结果
    MyLabel *label = new MyLabel(this);
    label->setText("Hello World");

}


Widget::~Widget()
{
    qDebug() << "widget 析构函数被调用";
    delete ui;
}

